// pages/category/category.js
Page({

  /**
   * 页面的初始数据
   */
  data: {
    leftCateList: [], //左侧数据
    rightCateList: [], //右侧数据
    currentIndex: 0, //当前选中的item
    scrollTop: 0, //滚动初始化
  },
  cateData: [], //全部数据

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad: function (options) {

    /*  
    思路
      1.页面刚开始加载的时候判断一下本地存储中是否存在数据
      2.如果没有数据, 发送请求
      3.如果存在数据 判断一下旧数据有没有过期 如果没有过期则直接使用 已经过期 重新请求新的数据
  */
    let cateData = wx.getStorageSync('cateData');
    // console.log(cateData);
    if (!cateData) { //当本地没有任何数据存贮的时候 进行获取数据
      this.getCates()
    } else { //本地存在缓存数据
      //判断数据是否过期
      if ((+new Date() - cateData.time) > 10000) { //设置10s过期时间并且进行判断
        //当超时之后 重新获取数据
        this.getCates();
      } else {
        this.cateData = cateData.data;
        //获取左侧按钮内容
        let leftCateList = this.cateData.map(item => item.cat_name);
        //获取右侧商品分类列表
        let rightCateList = this.cateData[0].children;

        this.setData({
          leftCateList,
          rightCateList
        })
      }
    }

    // this.getCates()
  },

  getCates: async function () {
    let {data} = await wx.categoriesApi.getCategories();
    // console.log(data);
    this.cateData = data.message;


    wx.setStorageSync('cateData', {
      time: +new Date(),
      data: this.cateData
    })


    let leftCateList = this.cateData.map(item => item.cat_name);

    let rightCateList = this.cateData[0].children;

    this.setData({
      leftCateList,
      rightCateList
    })

    // console.log(leftCateList);
    // console.log(rightCateList);
  },


  //监听当左侧按钮列表点击事件
  onItemClick(e) {
    // console.log(e);
    let {
      index
    } = e.currentTarget.dataset;

    let rightCateList = this.cateData[index].children;

    this.setData({
      rightCateList,
      currentIndex: index,
      scrollTop: 0
    })
  },




  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady: function () {

  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow: function () {

  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide: function () {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload: function () {

  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh: function () {

  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom: function () {

  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage: function () {

  }
})